home *** CD-ROM | disk | FTP | other *** search
-
- -- -----------------------------------------------------------------
- -- Init
- -- -----------------------------------------------------------------
- local function prog_init()
- initModels()
- sound_playMusic("music/rybky09.ogg")
- local pokus = getRestartCount()
-
-
- -- -------------------------------------------------------------
- local function prog_init_room()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- if pokus == 1 then
- room.uvod = 3
- else
- room.uvod = random(3)
- end
- room.oregistry = random(5000) + 500
- room.odolech = 0
- room.oblizardu = 0
-
- return function()
- if room.oblizardu == 0 and isReady(big) and big.X == 47 and big.Y == 11 then
- room.oblizardu = 1
- big:setBusy(true)
- addv(5, "war-v-blizzard")
- if isReady(small) then
- small:setBusy(true)
- addm(4, "war-m-hodiny")
- end
- planBusy(big, false)
- planBusy(small, false)
- end
- if no_dialog() and isReady(small) and isReady(big) then
- for pom1 = 1, 10 do
- if room.oregistry > 0 then
- room.oregistry = room.oregistry - 1
- end
- end
- if room.uvod > 0 then
- if room.uvod == 1 or room.uvod == 3 then
- addm(random(30) + 10, "war-m-kam")
- addv(random(30) + 10, "war-v-povedome")
- end
- if room.uvod == 2 or room.uvod == 3 then
- switch(random(2)){
- [0] = function()
- addm(random(30) + 20, "war-m-hrad")
- end,
- [1] = function()
- addm(random(30) + 20, "war-m-ocel")
- end,
- }
- if random(100) < 50 or pokus == 1 then
- addv(random(200) + 10, "war-v-vesnicane")
- addm(4, "war-m-peoni")
- end
- end
- room.uvod = 0
- elseif room.odolech == 0 and (dul1.dir ~= dir_no or dul2.dir ~= dir_no) and random(100) < 10 then
- room.odolech = 0
- addv(random(30) + 10, "war-v-doly")
- addm(random(20), "war-m-povazuji")
- elseif room.oregistry == 0 then
- room.oregistry = -1
- addv(20, "war-v-pohadka")
- addm(random(40) + 10, "war-m-pichat")
- addv(2, "war-v-prozradit")
- addm(4, "war-m-aznato")
- end
- end
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_knight1()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- knight1.hybese = 0
- knight1.unejvelka = 1
- knight1.unejmala = 0
-
- return function()
- pom2 = 0
- if dist(big, knight1) <= 1 then
- pom1 = 1
- else
- pom1 = 0
- end
- if knight1.unejvelka == 0 and pom1 == 1 then
- pom2 = 1
- end
- knight1.unejvelka = pom1
- if dist(small, knight1) <= 1 then
- pom1 = 1
- else
- pom1 = 0
- end
- if knight1.unejmala == 0 and pom1 == 1 then
- pom2 = 1
- end
- knight1.unejmala = pom1
- if knight1.dir ~= dir_no and knight1.hybese == 0 then
- pom2 = 2
- end
- if knight1.dir ~= dir_no then
- knight1.hybese = 1
- else
- knight1.hybese = 0
- end
- switch(pom2){
- [1] = function()
- knight1:talk("war-k-ready"..random(3), VOLUME_FULL)
- end,
- [2] = function()
- knight1:talk("war-k-move" ..random(3), VOLUME_FULL)
- end,
- }
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_knight2()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- knight2.hybese = 0
- knight2.unejvelka = 0
- knight2.unejmala = 0
-
- return function()
- pom2 = 0
- if dist(big, knight2) <= 1 then
- pom1 = 1
- else
- pom1 = 0
- end
- if knight2.unejvelka == 0 and pom1 == 1 then
- pom2 = 1
- end
- knight2.unejvelka = pom1
- if dist(small, knight2) <= 1 then
- pom1 = 1
- else
- pom1 = 0
- end
- if knight2.unejmala == 0 and pom1 == 1 then
- pom2 = 1
- end
- knight2.unejmala = pom1
- if knight2.dir ~= dir_no and knight2.hybese == 0 then
- pom2 = 2
- end
- if knight2.dir ~= dir_no then
- knight2.hybese = 1
- else
- knight2.hybese = 0
- end
- switch(pom2){
- [1] = function()
- knight2:talk("war-k-ready"..random(3), VOLUME_FULL)
- end,
- [2] = function()
- knight2:talk("war-k-move"..random(3), VOLUME_FULL)
- end,
- }
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_archer1()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- archer1.hybese = 0
- archer1.unejvelka = 1
- archer1.unejmala = 0
-
- return function()
- pom2 = 0
- if dist(big, archer1) <= 1 then
- pom1 = 1
- else
- pom1 = 0
- end
- if archer1.unejvelka == 0 and pom1 == 1 then
- pom2 = 1
- end
- archer1.unejvelka = pom1
- if dist(small, archer1) <= 1 then
- pom1 = 1
- else
- pom1 = 0
- end
- if archer1.unejmala == 0 and pom1 == 1 then
- pom2 = 1
- end
- archer1.unejmala = pom1
- if archer1.dir ~= dir_no and archer1.hybese == 0 then
- pom2 = 2
- end
- if archer1.dir ~= dir_no then
- archer1.hybese = 1
- else
- archer1.hybese = 0
- end
- switch(pom2){
- [1] = function()
- archer1:talk("war-a-ready"..random(2), VOLUME_FULL)
- end,
- [2] = function()
- archer1:talk("war-a-move"..random(2), VOLUME_FULL)
- end,
- }
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_archer2()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- archer2.hybese = 0
- archer2.unejvelka = 1
- archer2.unejmala = 0
-
- return function()
- pom2 = 0
- if dist(big, archer2) <= 1 then
- pom1 = 1
- else
- pom1 = 0
- end
- if archer2.unejvelka == 0 and pom1 == 1 then
- pom2 = 1
- end
- archer2.unejvelka = pom1
- if dist(small, archer2) <= 1 then
- pom1 = 1
- else
- pom1 = 0
- end
- if archer2.unejmala == 0 and pom1 == 1 then
- pom2 = 1
- end
- archer2.unejmala = pom1
- if archer2.dir ~= dir_no and archer2.hybese == 0 then
- pom2 = 2
- end
- if archer2.dir ~= dir_no then
- archer2.hybese = 1
- else
- archer2.hybese = 0
- end
- switch(pom2){
- [1] = function()
- archer2:talk("war-a-ready"..random(2), VOLUME_FULL)
- end,
- [2] = function()
- archer2:talk("war-a-move"..random(2), VOLUME_FULL)
- end,
- }
- end
- end
-
- -- --------------------
- local update_table = {}
- local subinit
- subinit = prog_init_room()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_knight1()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_knight2()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_archer1()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_archer2()
- if subinit then
- table.insert(update_table, subinit)
- end
- return update_table
- end
- local update_table = prog_init()
-
-
- -- -----------------------------------------------------------------
- -- Update
- -- -----------------------------------------------------------------
- function prog_update()
- for key, subupdate in pairs(update_table) do
- subupdate()
- end
- end
-
-